From fcc10b1f4a9968af5cda1adb9e449df92939d5f2 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Ga=C3=ABl=20PORTAY?= <gael.portay@savoirfairelinux.com>
Date: Fri, 4 Nov 2016 15:58:46 -0400
Subject: [PATCH 3/3] Make it compatible with python3
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Python scripts are now compatible with both version of python, 2 and 3.

Helped-by: Damien Riegel <damien.riegel@savoirfairelinux.com>
Helped-by: Alexandre Leblanc <alexandre.leblanc@savoirfairelinux.com>
Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com>
---
 maketables   | 135 ++++++++++++++++++++++++++++++-----------------------------
 makewrappers |   8 ++--
 2 files changed, 73 insertions(+), 70 deletions(-)

diff --git a/maketables b/maketables
index 0726485..f74f2b1 100755
--- a/maketables
+++ b/maketables
@@ -51,6 +51,7 @@ value.  (This is for consistency with C array bounds.)
 import glob
 import sys
 import string
+import os
 from templatefile import TemplateFile
 
 class DataType:
@@ -58,74 +59,74 @@ class DataType:
 
     def __init__(self, path):
         """read the first line of path, then make tuples of the rest"""
-        source = file(path)
-        definition = source.readline().rstrip()
-        self.name, qualifiers = string.split(definition, ': ', 2)
-        if '; ' in qualifiers:
-            self.prefix, columns = string.split(qualifiers, '; ')
-        else:
-            self.prefix = qualifiers
-            columns = []
-        self.flags = False
-        if len(columns):
-            self.columns = []
-            columns = string.split(columns, ', ')
-            for col in columns:
-                indexed = False
-                if col.startswith("FLAGS"):
-                    print("Flags: set for %s" % self.name)
-                    self.flags = True
+        with open(path,'r') as source:
+            definition = source.readline().rstrip()
+            self.name, qualifiers = definition.split(': ', 2)
+            if '; ' in qualifiers:
+                self.prefix, columns = qualifiers.split('; ')
+            else:
+                self.prefix = qualifiers
+                columns = []
+            self.flags = False
+            if len(columns):
+                self.columns = []
+                columns = columns.split(', ')
+                for col in columns:
+                    indexed = False
+                    if col.startswith("FLAGS"):
+                        print("Flags: set for %s" % self.name)
+                        self.flags = True
+                        continue
+                    if col.startswith("INDEXED "):
+                        col = col[8:]
+                        indexed = True
+                    if "=" in col:
+                        name, default = col.split(' = ')
+                    else:
+                        name, default = col, ""
+                    if " " in name:
+                        words = name.split(' ')
+                        name = words[-1]
+                        del words[-1]
+                        type = ' '.join(words)
+                    else:
+                        type = "char *"
+                    self.columns.append({"indexed":indexed, "type":type, "name":name, "value":default})
+            else:
+                self.columns = []
+            self.data = []
+            self.comments = []
+            index = 1
+            for line in source.readlines():
+                item = {}
+                if line.startswith('#'):
+                    self.comments.append(line.rstrip().replace('#', ''))
                     continue
-                if col.startswith("INDEXED "):
-                    col = col[8:]
-                    indexed = True
-                if "=" in col:
-                    name, default = string.split(col, ' = ')
-                else:
-                    name, default = col, ""
-                if " " in name:
-                    words = string.split(name, ' ')
-                    name = words[-1]
-                    del words[-1]
-                    type = ' '.join(words)
-                else:
-                    type = "char *"
-                self.columns.append({"indexed":indexed, "type":type, "name":name, "value":default})
-        else:
-            self.columns = []
-        self.data = []
-        self.comments = []
-        index = 1
-        for line in source.readlines():
-            item = {}
-            if line.startswith('#'):
-                self.comments.append(line.rstrip().replace('#', ''))
-                continue
-            # first entry on the line is the "real" name/id, following hunks
-            # are additional columns
-            cols = string.split(line.rstrip(), ', ')
-            item["name"] = cols.pop(0)
-            item["upper"] = item["name"].replace('-', '_').upper()
-            column_list = []
-            for col in self.columns:
-                if len(cols) > 0:
-                    value = cols.pop(0)
-                    if col["indexed"]:
-                        if not "max" in col:
-                            col["max"] = value
-                        if value > col["max"]:
-                            col["max"] = value
-                        if not "min" in col:
-                            col["min"] = value
-                        if value < col["min"]:
-                            col["min"] = value
-                    column_list.append({"name":col["name"], "value":value})
-                else:
-                    column_list.append({"name":col["name"], "value":col["value"]})
-            item["cols"] = column_list
-            item["index"] = index
-            index = index + 1
-            self.data.append(item)
+                # first entry on the line is the "real" name/id, following hunks
+                # are additional columns
+                cols = line.rstrip().split(', ')
+                item["name"] = cols.pop(0)
+                item["upper"] = item["name"].replace('-', '_').upper()
+                column_list = []
+                for col in self.columns:
+                    if len(cols) > 0:
+                        value = cols.pop(0)
+                        if col["indexed"]:
+                            if not "max" in col:
+                                col["max"] = value
+                            if value > col["max"]:
+                                col["max"] = value
+                            if not "min" in col:
+                                col["min"] = value
+                            if value < col["min"]:
+                                col["min"] = value
+                        column_list.append({"name":col["name"], "value":value})
+                    else:
+                        column_list.append({"name":col["name"], "value":col["value"]})
+                item["cols"] = column_list
+                item["index"] = index
+                index = index + 1
+                self.data.append(item)
 
     def __getitem__(self, key):
         """Make this object look like a dict for Templates to use"""
diff --git a/makewrappers b/makewrappers
index bac856b..ff08ba0 100755
--- a/makewrappers
+++ b/makewrappers
@@ -453,6 +453,8 @@ additional ports to include.
 """
 
     def __init__(self, port, sources):
+        if type(port) is not str:
+            port = str(port, encoding="ascii")
         self.name = port
         self.subports = []
         self.preports = []
@@ -483,7 +485,7 @@ additional ports to include.
             if retcode:
                 raise Exception("preports script failed for port %s" % self.name)
 
-            for preport in string.split(portlist):
+            for preport in portlist.split():
                 next = Port(preport, sources)
                 self.preports.append(next)
 
@@ -494,7 +496,7 @@ additional ports to include.
             if retcode:
                 raise Exception("subports script failed for port %s" % self.name)
 
-            for subport in string.split(portlist):
+            for subport in portlist.split():
                 next = Port(subport, sources)
                 self.subports.append(next)
 
@@ -519,7 +521,7 @@ additional ports to include.
         return mergedfuncs
 
     def define(self):
-        return '#define PSEUDO_PORT_%s 1' % string.upper(self.name).replace('/', '_')
+        return '#define PSEUDO_PORT_%s 1' % self.name.upper().replace('/', '_')
 
     def portdeps(self):
         deps = []
-- 
2.10.1

